﻿using System;
using MugenInjection.Delegates;

namespace MugenInjection.Interception.Interface
{
    /// <summary>
    /// Represent an interface to intercept a method.
    /// </summary>
    public interface IMethodInterceptor : IInterceptor
    {
        /// <summary>
        /// Gets the input parameters of the method.
        /// </summary>
        object[] InputParameters { get; }

        /// <summary>
        /// Gets or sets the output parameter of the method.
        /// </summary>
        object ReturnValue { get; set; }

        /// <summary>
        /// Gets the original method.
        /// </summary>
        Action Method { get; }
    }
}